﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using Noris.Tools.TraceVisualiser.Interface;
using Noris.Tools.TraceVisualiser.Forms;
using System.Windows.Forms;

namespace Noris.Tools.TraceVisualiser.Support
{
    internal class Rtf_TestFunc : IFunctionGlobalProvider
    {
		#region IPlugin Members
		/// <summary>
		/// Příznak, že Plugin je aktivní ve standardním běhu (tj. při běžném užiavtelském spuštění).
		/// Plně funkční pluginy tedy vrací true.
		/// Pluginy, které jsou ve vývoji, vrací false, takové jsou zobrazeny / spouštěny pouze v aplikaci, která běží v režimu Debug.
		/// </summary>
		bool IPlugin.Active { get { return false; } }
		#endregion
		#region IFunctionGlobalMenuItem Members
        void IFunctionGlobalProvider.CreateMenuItems(FunctionGlobalDeclareArgs args)
        {
            args.MenuItems.Add(new FunctionMenuItem(199, "Test RTF", "Otestuje chod RTF generátoru",  Forms.ToolItemProperties.None,
                TraceVisualiser.Pics.PicLibrary16.Documentpreview,
                TraceVisualiser.Pics.PicLibrary22.Documentpreview));
        }
        /// <summary>
        /// Spuštění funkce
        /// </summary>
        /// <param name="args"></param>
        void IFunctionGlobalProvider.Run(FunctionGlobalRunArgs args)
        {
            this._RtfTestRun(args);
        }
        #endregion

        private void _RtfTestRun(FunctionGlobalRunArgs args)
        {
            RtfCoder rtf = new RtfCoder(true);
            int f = 0;
            if (1 == f)
                rtf.Add(
                    RtfItem.NewParAlignment(RtfAlignment.Center),
                    RtfItem.NewText("Jupí, první RTF text !"),
                    RtfItem.NewLine,
                    RtfItem.NewSize(16),
                    RtfItem.NewText("  Velký text"),
                    RtfItem.NewSize(10),
                    RtfItem.NewFontStyle(RtfFontStyle.Bold),
                    RtfItem.NewText(", bold text."),
                    RtfItem.NewLine
                    );
            
            rtf.Add(
                RtfItem.DefaultParagraph,
                RtfItem.NewText("Diakritika:"),
                RtfItem.NewLine
                );

            rtf.Add(RtfItem.NewText("áčďéěíňóřšťúůýž   ÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ"), RtfItem.NewLine);
            rtf.Add(RtfItem.NewText("acdeeinorstuuyz   ACDEEINORSTUUYZ"), RtfItem.NewLine);

            rtf.Add(RtfItem.NewForeColor(Color.DarkCyan), RtfItem.NewText("-- Comment", true), RtfItem.NewForeColor(Color.Empty));
            rtf.Add(RtfItem.NewHighlight(RtfHighlightType.Blue), RtfItem.NewText("-- Highlight", true), RtfItem.NewHighlight(RtfHighlightType.None));

            Steward.OpenDialogFormInTryCatch(typeof(ShowTextForm), "Chyba při práci v okně: %0", delegate(Form form)
            {
                ShowTextForm sForm = form as ShowTextForm;
                sForm.FindPanelVisible = true;
                sForm.ReadOnly = true;
                sForm.CurrentRtfText = rtf.RtfText;
            });
        }
    }
}
